<?php

/**
 * 投票处理
 * @author Ice iceinto@mallog.com.cn
 */
class VoteModel extends BaseModel
{
    protected $_validate = array(
        array('title', 'require', '标题必须！'),
        array('email', 'require', '邮件必须！'),
        array('content', 'require', '内容必须！'),
        array('start_time', 'require', '开始时间必须！'),
        array('end_time', 'require', '结束时间必须！'),
        array('link_url', 'require', '链接到必须！'),
        array('link_to', 'require', '链接到地址必须！'),

        array('email', 'email', '邮箱格式不对！'),
        array('link_url', 'url', '链接地址不正确！'),

        array('title', '', '标题已经存在！', Model::EXISTS_VALIDATE, 'unique', Model::MODEL_INSERT),
        array('type', array(1, 2, 3), '类型值范围不正确！', Model::VALUE_VALIDATE, 'in'),
        array('level', array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), '级别等级值范围不正确！', Model::VALUE_VALIDATE, 'in'),
        array('type', array(1, 2, 3), '类型值范围不正确！', Model::VALUE_VALIDATE, 'in'),
        array('choose', array(1, 2), '只能是单选多选！', Model::VALUE_VALIDATE, 'in'),
    );
    protected $_auto = array(
        array('add_time', 'time', Model::MODEL_INSERT, 'function'),
        array('update_time', 'time', Model::MODEL_BOTH, 'function'),
    );

    /**
     * 获取投票数据
     * @param $map
     * @param $limit
     * @param string $fields
     * @return array
     * @author Ice iceinto@mallog.com.cn
     */
    public function getList($map, $limit, $fields = 'itemid,title,hits')
    {
        return $this->getListByWhere($map, $fields, $limit, 'level DESC,itemid DESC');
    }

    /**
     * 获取当前投票列表
     * @param $map
     * @param $limit
     * @param string $fields
     * @return array
     * @author Ice iceinto@mallog.com.cn
     */
    public function getNowList($map, $limit, $fields = 'itemid,title,hits')
    {
        $time = $this->getThisDayTime();
        $map['start_time'] = array('elt', $time);
        $map['end_time'] = array('egt', $time);
        return $this->getListByWhere($map, $fields, $limit, 'level DESC,itemid DESC');
    }

    /**
     * 获取当前投票列表
     * @param $map
     * @return array
     * @author Ice iceinto@mallog.com.cn
     */
    public function getNowCount($map)
    {
        $time = $this->getThisDayTime();
        $map['start_time'] = array('elt', $time);
        $map['end_time'] = array('egt', $time);
        return $this->where($map)->count();
    }
}

?>